class FluidSim {

	public:
		FluidSim ( int Size );
		~FluidSim();
		FluidSimData* Update ( int dt );
		FluidSimData* Data ( ) { return mData; }

		//Params
		int Size ( ) { return mSize; }
		float Diff ( ) { return mDiff; }
		float Visc ( ) { return mVisc; }
		void SetDiff ( float diff ) { mDiff = diff; }
		void SetVisc ( float visc ) { mVisc = visc; }
		
		// Input Funcs
		void CreateSource ( unsigned int I, unsigned int J, int Source);
		void CreateVelocity ( unsigned int I, unsigned int J, int dX, int dY, int mForce);

	private:
		FluidSimData *mData;
		float mDiff;
		float mVisc;
}